An application can render display data such as images, graphics, video, etc. by expressly providing instructions to the available hardware resources in display system (e.g., a computing device or system). To interface with a particular hardware resource, the application can use a custom application programming interface (API) specifically coded for that hardware resource provided by the system for the application. Using the APIs, the application can divide up the rendering processes by identifying a specific hardware resource to render a particular graphics workload (display data). For example, the application can specify that a 3D rendering pipeline should render graphics or image data by using a 3D rendering API (e.g., Open GL API). To specify that video decoding pipeline should render movie data, the application can specify using a movie playback API.
Because the available hardware resources can vary from one device to another, an application may not be able to fully take advantage of the various available hardware resources. In addition, when one or more of the hardware resources are changed/replaced, a new API may be needed to interface with the new hardware.